
#pragma once

#define OBTYPE_MESH 0
#define OBTYPE_CAMERA 1
#define OBTYPE_OMNILIGHT 2
#define OBTYPE_SPOTLIGHT 3
#define OBTYPE_DUMMY 5
#define OBTYPE_CTARGET 6
#define OBTYPE_LTARGET 7

class CHrkSceneEntry 
{
public:
	INode *node;
	Object *obj;
	int type ;    
	CHrkSceneEntry *next;
	CHrkSceneEntry(INode *n, Object *o, int t) { node = n; obj = o; type = t ; next = NULL; }
};

class CHrkSceneEnumProc:public ITreeEnumProc 
{
public:
	Interface*i;
	IScene*theScene;
	TimeValue time;
	CHrkSceneEnumProc(IScene *scene, TimeValue t, Interface *i,BOOL bSelected);
	~CHrkSceneEnumProc();
	int	Count() {return m_nCount;}
	void Append(INode *node, Object *obj, int type);
	int callback( INode *node );
	Box3 Bound();
	CHrkSceneEntry *operator[](int index);

	BOOL m_bSelected;

	int m_nCount;
	Tab<CHrkSceneEntry*> m_nodeTab;
};
